Associating Information With An Electronic Document

ABSTRACT

A system for associating information comprises an association module that uses anchoring information to associate a first piece of information with a second piece of information, wherein the second piece of information is not part of the first piece of information. The system further includes a rendering module that presents the second piece of information for use. Methods for using such a system are also described.

RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 11/227,937, titled, “Associating Informationwith an Electronic Document,” filed on Sep. 15, 2005, which issued onJun. 8, 2010, as U.S. Pat. No. 7,734,631, and is hereby incorporated byreference, which claims priority to provisional application No.60/674,628, filed Apr. 25, 2005, which is also hereby incorporated byreference.

BACKGROUND

The Internet has evolved into a communication platform upon which avariety of information-based services can be provided. One of the mostpopular of these services is the provision of electronic documentsconstructed using hypertext markup language (HTML). These documents areoften referred to as web pages and are available from computinglocations or sites on a logical segment of the Internet commonlyreferred to as the World Wide Web, or simply the Web. Informationavailable on these Web sites and servers is typically accessed using aWeb browser executing on a remote computer. For example, a user canlaunch a Web browser and access a Web site by entering a UniformResource Locator (URL) of the Web site into an address bar of the Webbrowser and pressing the enter key on a keyboard or clicking a buttonwith a mouse. The URL typically includes three pieces of informationthat facilitate access: a protocol indicator that designates a set ofrules or standards for the exchange of information in computercommunication, a domain name that is often based on the name of anorganization that maintains the Web site, and a path to the desireddocument within the domain. Standard Web browsers can use theinformation included in a URL to establish a connection with a Webserver and obtain information from that Web server.

In addition to Web sites and Web pages, other types of services areavailable. Among those services are electronic mail, instant messaging,chat services, audio or video services, and other information services.Typically, each service available on the Internet has existed inisolation from other services. For example, a user can access a Web siteusing a Web browser but must open an audio application to access audioinformation as a separate service. Additionally, a user may have to opena third application to access a chat service and a fourth application toaccess a messaging service.

Typically, although information content from each type of service existsin isolation from other services, such information can be logicallyrelated in a variety of different ways. For example, information can belogically related in the sense that information available from eachservice can refer to information available on another service. Also,information from more than one available service can be topicallyrelated, originate from the same source, or be related in some otherfashion. Current systems fail to provide any ability to integrateinformation from various services in logical and meaningful ways.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding and high-level survey. This summary is not an extensiveoverview. It is neither intended to identify key or critical elementsnor to delineate scope. The sole purpose of this summary is to presentsome concepts in a simplified form as a prelude to the more detaileddescription later presented. Additionally, section headings used hereinare provided merely for convenience and should not be taken as limitingin any way.

A rendering module can obtain information, such as a Web page, from aninformation source using a network. An associative module can analyzethat obtained information and use results of its analysis to identifyand locate key or important pieces of the information. This information,among other types, can be used as an anchor with which to associateother information in addition to the original information. Additionalinformation can be presented to a user.

A variety of additional types of information or information services canbe provided to a user based upon an analysis of the content of theinformation obtained by the user, for example, content of a Web page.Content from Web logs that relate or refer to a Web page currently beingviewed by the user can be presented along with the currently-viewed Webpage. Among the possible types of content that can be presented areadvertising-based content and content created by other visitors to a Website, such as notes, comments, ratings, and reviews. Also, one or morehyperlinks from a Web page that references the present Web page can bepresented. Additionally, services such as automatic connection torelevant chat room discussions and page-biased searches can be provided.

The disclosed and described components and methods comprise one or moreof the features hereinafter described and particularly pointed out inthe claims. The following description and the annexed drawings set forthin detail certain specific illustrative components and methods. However,these components and methods are indicative of but a few of the variousways in which the disclosed components and methods can be employed.Specific implementations of the disclosed and described components andmethods can include some, many, or all of such components and methods,as well as their equivalents. Variations of the specific implementationsand examples presented herein will become apparent from the followingdetailed description when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system block diagram of an associative information system.

FIG. 2 is a block diagram of a note.

FIG. 3 is a system block diagram of an associative information system.

FIG. 4 is a system block diagram of an associative information system.

FIG. 5 is a system block diagram of an associative information system.

FIG. 6 is a system block diagram of an associative information system.

FIG. 7 is a system block diagram of a supplemental content provisionsystem.

FIG. 8 is a diagram of an exemplary user interface.

FIG. 9 is a flow diagram depicting a general processing flow of a methodthat can be employed in accordance with components that are disclosedand described herein.

FIG. 10 is a flow diagram depicting a general processing flow of amethod that can be employed in accordance with components that aredisclosed and described herein.

FIG. 11 is a flow diagram of a general processing flow of a method canbe employed in accordance with components that are disclosed anddescribed herein.

FIG. 12 is a flow diagram depicting a general processing flow of amethod that can be employed in accordance with components that aredisclosed and described herein.

FIG. 13 illustrates an exemplary networking environment.

FIG. 14 illustrates an exemplary computing environment.

DETAILED DESCRIPTION

As used in this application, the terms “component,” “system,” “module,”and the like are intended to refer to a computer-related entity, such ashardware, software (for instance, in execution), and/or firmware. Forexample, a component can be a process running on a processor, aprocessor, an object, an executable, a program, and/or a computer. Also,both an application running on a server and the server can becomponents. One or more components can reside within a process and acomponent can be localized on one computer and/or distributed betweentwo or more computers.

Disclosed components and methods are described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the disclosed subject matter. It may beevident, however, that certain of these specific details can be omittedor combined with others in a specific implementation. In otherinstances, certain structures and devices are shown in block diagramform in order to facilitate description. Additionally, although specificexamples set forth may use terminology that is consistent withclient/server architectures or may even be examples of client/serverimplementations, skilled artisans will appreciate that the roles ofclient and server may be reversed, that the disclosed and describedcomponents and methods are not limited to client/server architecturesand may be readily adapted for use in other architectures, specificallyincluding peer-to-peer (P2P) architectures, without departing from thespirit or scope of the disclosed and described components and methods.Further, it should be noted that although specific examples presentedherein include or reference specific components, an implementation ofthe components and methods disclosed and described herein is notnecessarily limited to those specific components and can be employed inother contexts as well.

It should also be appreciated that although specific examples presentedmay describe or depict systems or methods that are based upon componentsof personal computers, the use of components and methods disclosed anddescribed herein is not limited to that domain. For example, thedisclosed and described components and methods can be used in adistributed or network computing environment. Additionally oralternatively, the disclosed and described components and methods can beused on a single server accessed by multiple clients. Those of ordinaryskill in the art will readily recognize that the disclosed and describedcomponents and methods can be used to create other components andexecute other methods on a wide variety of computing devices.

FIG. 1 is a system block diagram of an interactive information system100. The interactive information system 100 includes a renderingcomponent 110 that can obtain information from a primary informationdata store 120. The rendering component 110 can be a Web browser oranother component that has the capability to obtain and presentinformation. Specifically, the rendering component 110 can be astand-alone application that can be launched and operated by a user orcan be a module that is designed to be used in conjunction with anothercomponent, such as an HTML rendering engine for an email application oranother such component. The rendering component 110 can present obtainedinformation to a user on a visual display or some other human-computerinterface such as a speech-based interface or a Braille interface, amongothers.

The primary information data store 120 can be a database, an intranet,the World Wide Web, the Internet, a file share, or some other source ofinformation, specifically including a source of information that can beaccessed remotely. Information included in the primary information datastore 120 can depend upon a specific implementation of the primaryinformation data store 120 but generally can include any information inan electronic or machine-readable form. Specifically, information storedin the primary information data store can include Web pages from theInternet or an intranet, text documents in a variety of formats,graphical image information, audio information, video information,multimedia information, and other suitable forms of information.

An association plug-in 130 can communicate with the rendering component110 and the primary information data store 120 to obtain informationthat the rendering component 110 can present to a user. Additionally oralternatively, the interactive plug-in 130 can obtain additionalinformation from another information source such as the secondaryinformation data store 140. The secondary information data store 140 canbe implemented in much the same way as the primary information datastore 120 and can include the same types of information, among others.Specifically, the secondary information data store 140 can includenotes, documents such as Web pages, intranet pages, text documents in avariety of formats, graphical or audio information, search-relatedinformation including search terms or results and access to searchengines, wikis, Web logs (blogs), RSS or other news feeds, chat contentincluding notification-based chat content, instant message informationincluding messages or user names, tags, inlinks, outlinks, and any otherinformation that can be stored or presented in an electronic ormachine-readable format.

Information included in the secondary information data store 140 can becreated by a secondary content creation module 150. Those of ordinaryskill in the art will recognize from reading this disclosure thatimplementation details of the secondary content creation module 150 canvary depending upon a specific type of information to be created for usewith the secondary information data store 140. Specifically, dependingupon such content, the secondary content creation module 150 can be atext editor, a word processor, a spreadsheet program, a slideshow orpresentation program, a Web page editor, a graphics program, an audioprogram, a Web logging (blogging) tool, a chat program, an instantmessaging program, or some other suitable component, specificallyincluding a combination of some or all of the foregoing examples.

The association plug-in 130 can relate or associate information from thesecondary information data store 140 with information originallyobtained from the primary information data store 120 for display by therendering component 110. Specifically, the additional information fromthe secondary information data store 140 can be anchored to informationfrom the primary information data store 120. Such anchoring orassociation can be accomplished in a variety of ways. For example, adomain name, such as example-domain-name.tld, associated with a Web pagecan be used as an anchor for a piece of information from the secondaryinformation data store 140. Similarly, a fully- or partially-qualifieduniform resource locator (URL), including a relative URL, of acurrently- or previously-accessed Web page or other resource can be usedas an anchor. Other possible anchors include, but are not limited to,locations of files on file shares or other remote locations, keywordsincluded in content from the primary information data store 120, or formdata, among others.

In one example, information from the secondary information data store140 can be a note that includes some text. The note can be anchored to aWeb page by associating the note with the URL of the Web page. The notecould also be anchored to a piece of form data. For instance, if theform data is a postal zip code, the note can appear whenever a userenters that zip code into a form. As another example, the note can beanchored to specific keywords. When a user views information from theprimary information data store 120 that includes such keywords, the notecan be displayed to the user by the rendering component 110. The notecan be replaced with any content from the secondary information datastore 140. Generally, any content from the secondary information datastore 140 can be anchored using any appropriate anchor to any contentfrom the primary information data store 120 in any appropriatecombination.

It should be noted that although the additional information can beanchored to or associated with the information originally obtained,content of the additional information does not have to be related tocontent included in the information originally obtained. For example,the information originally obtained can be a Web page about computerprogramming languages and the additional information can be a link to asearch engine. In this example, the link to the search engine has noconnection with the content of the Web page. Many other types ofadditional content or additional functions can be used or provided bythe association plug-in 130.

An example based upon Web pages follows. The rendering component 110 canretrieve a Web page from the primary information data store 120. The Webpage can be presented to a user by the rendering component 110. Theassociation plug-in 130 can analyze the Web page to determine whichcontent of the Web page is important. A variety of approaches can beemployed to analyze the Web page. Among these approaches is a techniqueof creating a list of terms that are included in the web page and usethe term frequency-inverse document frequency (TF-IDF) algorithm tocreate a probabilistic summary of the content of the Web page. Theassociation plug-in 130 can use content of the Web page to identifyother content to be presented to the user. This other content caninclude, among other things, content from interactive chat roomsorganized around topics related to the Web page, content from Web log(blogs) entries or RSS or other news feeds that are related to the Webpage or that specifically mentioned the Web page, hyperlinks from otherpages that specifically point to the Web page, access to a searchengine, advertising that is related to the content of the Web page, orcontent in the form of comments made by other visitors to the Web page.

The association plug-in 130 can be implemented in a variety of ways thatcan depend in large part upon a specific implementation of the renderingcomponent 110, among other factors that will be readily apparent to oneof ordinary skill in the art upon reading this disclosure. In oneexemplary implementation, the association plug-in 130 can be executablecode that runs in a sidebar or similar area of a window or a Webbrowser. The association plug-in 130 can also be a stand-aloneapplication or other suitable executable code. The association plug-in130 can be a notation component that provides a user with the ability topost a notice that can be associated with a specific URL.

The notice can be informational in nature, including such things ashyperlinks to related subjects, information on products or services thatare similar to products or services mentioned in a Web page, or otherinformation. The notice can also be organizational in the sense that thenotice can be used to organize personal notes by URL, such as notesregarding research papers at a specific home page. Social applicationsof the notice are also possible by using the notice to post a message toanother user who visits a URL with which the notice is associated. Themessage can be intended to another person who will be attending anevent, another person with interests that are similar to interests ofthe creator of the message, a part of a discussion regarding a topic ofa Web page, or any other type of message. The notice can also have anentertainment purpose such as providing humor or being part of an onlinegame.

FIG. 2 is a block diagram of a note 200. The note 200 can be used by anassociation plug-in, such as the association plug-in 130 of FIG. 1, toconvey information that can be associated with some online content.Specifically, the information to be conveyed can include any of thetypes of information previously disclosed and described in conjunctionwith FIG. 1.

The note 200 can include a plurality of fields. An anchor field 210 caninclude information that can be used to anchor content of the note 200to an information location. Information in the anchor field 210 caninclude a URL, a domain name, or a root domain, among other locationidentifiers. The anchor field 210 can be used to describe anyappropriate anchor, specifically including the types of anchorspreviously disclosed and described in conjunction with FIG. 1. Theanchor field 210 can be used to associate content that can be used by anassociation plug-in with some information location.

Based upon the type of anchor and other factors, the note 200 caninclude a variety of fields. A keywords field 220 can include keywordsthat relate to content and can be used for indexing or search purposes.A content key field 230 can include some keywords or phrases that can beused to locate content, such as a Web page, that includes or matchesinformation in the content key field 230. A form data field 240 caninclude information that can be used to search for similar informationin forms. The form data field can also include form information such asone or more form field names to match a form field to a value for thatfield.

A scope field 250 can include information regarding a level at which anote, such as the note 200, can be distributed. For example, the scopefield 250 can indicate that the note 200 is private and should only beviewable by its creator. The scope field 250 can also indicate thatgroup access is permitted for members of a particular group or groups.These groups can be defined based upon some criterion or can includepreselected members, among other ways of defining membership. Further,public access can be indicated by information in the scope field 250such that the note 200 can be viewed by anyone.

The note 200 can also include a type field 260. Information in the typefield 260 can be used to define different types of notes. For example,different types can include simple text boxes, pictures, discussionthreads, or user-defined types, among others. Different types of notescan be displayed to a user in different ways to provide visual cuesregarding the specific type of not being presented. It should be notedthat presence of these fields can provide the ability for a user tofilter notes based upon personal preferences. Additionally, notes suchas the note 200 can be static in the sense that its content can be fixedor can be dynamic. A dynamic note, for example, can request updatedinformation from a server each time the dynamic note is activated.

In another exemplary implementation, a user can specify a provider ofcontent such as a note 200 from which the user desires to obtaincontent. The user can also specify a region within which such contentcan be displayed. One possible method of specifying such a region is byproviding a graphical tool that the user can place in a sidebar of a Webbrowser window. The user can also select from among other options suchas closing notes, having notes automatically refresh content, have notesprovide labeled sub-bars that can categorize information, associate anote with one or more anchors, set an expiration date, restrictdissemination of the note, and create notes anonymously, among otherthings.

Perceived utility of notes can be subject to a network effect where avalue of a note system increases with a number of users. To provide someinitial value, when initializing a note system, a variety of techniquescan be used. For example, notes can be shared across URLs. Notes canalso provide automatic annotation of Web sites, blogs, newsgroups, anddiscussion forums, among others. Dynamic notes and other content boxescan readily supply content. Scenario sites that demonstrate uses fornotes can also be created. Additionally, an application programminginterface (API) for notes can be provided to encourage developers tocreate their own notes. Search functions for notes can also add to theirusefulness. Prizes can also be awarded to users of notes to encourageadditional use. Also, popular Web sites can be used to promoteinstallation and further use of notes by users. At least some of thosepopular Web sites can be formally engaged as promoters of notes. Also,certain content can be provided only through use of notes such thatinstallation of notes components can be required to access that content.

Notes can also be subjected to filtering and ranking functions. Orderingof notes can be accomplished according to a variety of social networkingor web of trust networking concepts. Notes that are anchored to aspecific URL can be ranked more (or less) highly than notes that aresimply anchored to a domain name. Ranking functions can also be employedbased at least in part upon one or more factors such as a scope of anote, an author of a note, a date of creation of a note, a preferenceprofile of a user, a filter function, link analysis, feedback for a notesuch as a score or whether the note was closed by a user, and thresholdsfor note rankings, among others.

Privacy concerns for use of notes can be addressed in a variety of ways.For example, a component can request multiple notes from different URLsto obscure identifying information for a note that is actually desired.This technique can be used in combination with a prefetching scheme. Aone-way hash of a URL for the note can be created and sent to a serverinstead of a cleartext request. Additionally or alternatively, anintermediate server can be employed to obscure the identity of a userrequesting a particular note.

Along with notes, an interactive component can be a web chat componentthat can allow for dynamic chat sessions between or among users. Suchchat sessions can also be anchored to a URL or a domain name, amongothers. Chat sessions can also be anchored to more than one site toprovide for more varied discussion. Such chat sessions can also benotification-based such that a user can be notified when another userarrives at a specified site and desires to participate in a chat sessionwith other users. Other Web-aware applications can also be implemented,such as a listing component that provides a list of Web pages that linkto a Web page being viewed, a page summary component that summarizescontent on a currently viewed Web page, and a search component thatprovides links to search engine searches for terms that appearfrequently in a Web page, among others.

FIG. 3 is a system block diagram of an associative information system300. The associative information system 300 includes a renderingcomponent 310 and an associative plug-in component 320. As in precedingexamples, the associative plug-in component 320 can be a stand-aloneapplication, can be a pluggable part of another application, or can besome other suitable executable code. The rendering component 310 canaccess informational content from a network 330. The network 330 can bethe Internet, the World Wide Web, an intranet, or another suitablenetwork or information source.

The associative plug-in 320 can access and analyze the informationalcontent that the rendering component 310 has retrieved from the network330. To analyze the informational content, the associative plug-in 320can use any suitable approach, including one of the approaches discussedin relation to other figures. The associative plug-in 320 can thenconnect to a chat server 340 to establish a session in a chat room thatis organized around a topic that is related to the informationalcontent.

For example, in operation the rendering component 310 can obtain a Webpage from the World Wide Web. The associative plug-in 320 can thenanalyze the content of the Web page to determine a subject of the Webpage. The associative plug-in 320 can then connect to the chat server340 to locate a chat room that is related to the subject of the Webpage. A user can then participate in a discussion in the chat room whilecontinuing to view the web page.

FIG. 4 is a system block diagram of an associative information system400. The associative information system 400 includes a renderingcomponent 410 and an associative component 420. The rendering component410 can be a Web browser or another appropriate component that has acapability to obtain and render information. The rendering component 410can access information available on a network 430 and communicate thatinformation to the associative component 420.

The associative component 420 can analyze the information it receivesfrom the rendering component 410 and use that information to obtainadditional content from a Web log (blog) data store 440. The Web log(blog) data store 440 can include information about Web log (blog)entries and cross-references from Web log (blog) entries to Web sites. Across-reference can be created for a Web log (blog) entry that dealswith a topic that is the same as, or similar to, a topic of a Web site.A cross-reference can also be created for Web log (blog) entry thatspecifically references a Web site. Other cross-references can also becreated.

In use, the rendering component 410 accesses a piece of information fromthe network 430 and renders that information for presentation to a user.The associative component 420 analyzes the piece of rendered informationto discern a general topic or other content-related theme of theinformation. The associative component 420 accesses the Web log (blog)data store 440 to locate Web log (blog) entries that arecross-referenced with the information that was obtained by the renderingcomponent 410. The associative component 420 can then cause those Weblog entries to be presented to the user while the user is still viewingthe information.

Instead of or in addition to a Web log (blog) entry, information about aproduct or service that is related to a subject of Web page can bepresented. Such information can be in the form of user reviews or can beadvertising from a provider of a product or service itself. Suchadvertising can be triggered by using keywords from the informationalready retrieved by the rendering component 410. Therefore, theadvertising can be targeted to users who are most likely to respond tosuch ads. Additionally or alternatively, a user can subscribe to contentupdates to have a variety of events, such as addition of content, serveras a trigger to cause a content update operation to occur automatically.

One possible implementation includes a sidebar component that canprovide a contextually intelligent search application. This searchapplication can access content of a Web page that is being viewed by auser and calculate importance of various terms on that Web page, forexample, by using an algorithm such as the term frequency-inversedocument frequency (TF-IDF) algorithm. The user, when submitting a querythrough the search application, can obtain query results that are biasedin favor of results having content that is similar to the content beingviewed.

FIG. 5 is a system block diagram of an associative information system500. The associative information system 500 includes a rendering module510 and an associative module 520. The rendering module 510 can retrieveand present information from the World Wide Web 530. The associativemodule 520 can access and analyze the information retrieved by therendering module 510 in any of the previously-described manners. Theassociative module 520 can then use results of such analysis to access asearch server 540. The search server 540 can provide results that areresponsive to a search query and that are biased toward concepts presentin the information from the World Wide Web.

For example, the rendering module 510 can obtain a Web page for a user.The associative module 520 can then analyze contents of that Web page todetermine keywords or important concepts. A user can then perform asearch for additional information. The associative module 520 can usekeywords or concept descriptors that it obtained from the Web page toaugment a search query entered by the user. The search server 540 willuse the augmented search to obtain responsive information. Results ofthe search can be biased in favor of those Web pages that are similar,or contain similar concepts, as the Web page originally obtained by therendering module 510.

FIG. 6 is system block diagram of an associative information system 600.The associative information system 600 includes a rendering component610 that can access web pages from a network 630. An associativecomponent 620 can access the Web page from the rendering component 610and analyze its contents. Such analysis can be in accordance with any ofthe procedures previously described. The associative component 620 canthen use results of its analysis to contact a context server 640 toobtain additional content.

The context server 640 can access a visitor content data store 650 thatcan include content, such as user comments, ratings, rankings, feedback,or other content, that is related to the Web page obtained by therendering component 610. The context server 640 can then send suchcontent to the associative component 620 for presentation to the user.In this fashion, the user can access information from other visitors tothe Web page and obtain opinions from those users that relate to the Webpage.

A wide variety of types of information that relate to a Web page that iscreated by other users or viewers of a Web page can be created. Thiscontent can include notes and chat sessions such as those previouslydisclosed or described in conjunction with other figures. Such contentcan also include backlinks, context-specific or context-aware searchfunctions, Web log (blog) postings, and ranking functions, among others.It should be noted that any of these types of content can be anchored toa location such as a URL or a domain name as previously disclosed ordescribed. Such anchoring can enable association of content with a Website that is hosted by a party other than a party that hosts the Website with which the content is associated or anchored.

One type of content that can be created by a user of a Web site is atag. A tag can be an annotation created by a user that can relate to aWeb site or some other information of interest to the creating user. Forexample, a user can create a tag that includes a short descriptivephrase associated with the Web site. Additionally or alternatively, arating of a site, such as a multiple star rating or a simple thumbs-up,thumbs-down rating, can be provided. The rating can apply to the Website itself or to a product or service offered on the Web site, amongother things. A link to a related or similar Web site can also beprovided, including advertising links. Other types of content can alsobe added. Further, tags can be ranked according to various attributesand also used to rank Web pages with which those tags are associated.

FIG. 7 is a system block diagram of a supplemental content provisionsystem 700. The supplemental content provision system 700 can be used tosupport various types of supplemental content components, specificallyincluding the types of components previously disclosed or described inconjunction with other figures such as notes, chat components, and tags,among others. Specifically, a wide variety of third-party content can beprovided to supplement content from a Web site. Those of ordinary skillin the art will recognize from reading this disclosure that not all ofthe components disclosed or described in conjunction with FIG. 7 arenecessary in every implementation. For example, privacy- andadvertising-related components can be made optional.

The supplemental content provision system 700 includes a client userinterface 710. The client user interface 710 can be a Web browser oranother type of user interface that has the ability to obtaininformation and present that information to a user. Specifically, theclient user interface 710 can be a pluggable sidebar that can bedisplayed to a user in conjunction with primary content that can bepresented by another component, such as a Web browser in certainimplementations. Pluggability of the client user interface 710 canprovide the ability for developers to add support for various types ofcontent that can be associated with primary content in any of the waysdisclosed or described in conjunction with other figures.

The client user interface 710 can communicate with a third party contentprovider 715. The third-party content provider 715 can provideinformational content, such as notes, documents such as Web pages,intranet pages, text documents in a variety of formats, graphical oraudio information, search-related information including search terms orresults and access to search engines, wikis, Web logs (blogs), RSS orother news feeds, chat content including notification-based chatcontent, instant message information including messages or user names,tags, inlinks, outlinks, and any other information that can be stored orpresented in an electronic or machine-readable format, or another typeof information to a user by employing a suitable means of communicationthat can be supported by the client user interface 710. A separateadvertising interface 720 can provide a platform for advertisers tocreate or provide advertising to be presented to the user. Theadvertising interface 720 can be a Web browser window or some othersuitable interface. Specifics of the advertising interface dependlargely upon details of a particular implementation as well as a desiredlevel of access to be provided to an advertiser.

The client user interface 710 can send requests for various types ofinformation through a privacy protection service 725. These requests canbe requests for content that is associated with or anchored to contentprovided by the third party content providers 715. The privacyprotection service 725 can act to protect an identity or otherprivacy-related information of a user submitting the requests forinformation. This protection can be accomplished by obscuring a trueuser request by including the request among a group of “dummy” requests.Other techniques, specifically including use of hash or other encryptionfunctions to encode information requests or use of various anonymizerfunctions can additionally or alternatively be used.

The privacy protection service 725 can send information requests to, andreceive information from, an information provision system 730. Theinformation provision system 730 can include a variety of componentsthat can facilitate creation and access of supplemental information.This supplemental information can be manually created by a user, can beautomatically created by a script or bot such as a Web crawler, or canbe otherwise configured to create content for a user.

The information provision system 730 includes a fetcher 735. The fetcher735 can receive a request for information that can include a URL, adomain name, or other appropriate identifier, from the client userinterface 710. The fetcher 735 can use the request from the client userinterface 710 to obtain information from other components. Specifically,the fetcher 735 can obtain a set of preferences for the requesting userfrom a set of user preferences 740. The fetcher 735 can use any obtaineduser preferences to tailor information to be provided to the client userinterface 710 in accordance with individual desires of a requestinguser.

The fetcher 735 can obtain content from a content data store 745. Thecontent data store 745 can be a database, a Web service, or some otherappropriate data store. Content that can be included in the content datastore 745 can include user-created content from a user content writer750. The user content writer 750 can provide a means by which contentcreated by a user can be added to the content data store 745. This meanscan be a Web form or other Web service, among other things. The contentdata store 745 can also include content from a non-user content module755. The non-user content module 755 can include such things as scripts,Web crawlers, and tags, among other things.

The fetcher 735 can also obtain advertising information from anadvertising data store 760. The advertising data store 760 can includeadvertising content, including graphical, audio, and video content, froman advertising purchasing module 765. Advertisers using the advertisinguser interface 720 can purchase or otherwise obtain an ability to placeadvertisements into the information provision system 730 by using theadvertising purchasing module 765. The advertising purchasing module 765can access user models 770 to allow advertisers to select one or moreuser models to be used in targeting advertising to users.

A ranking and filtering module 775 can accept content from the fetcher735 and modify that content in accordance with user preferences 740 anduser feedback 780. User feedback 780 can be created by the user of theclient user interface 710 and can be used to customize content prior toprovision of the content to the client user interface 710. Modifiedcontent can be provided to the client user interface 710 by the rankingand filtering module 775.

The content data store 745 can also create a notification 785 that canbe sent to the client user interface 710. A user of the client userinterface 710 can subscribe to such notifications that can be used totrigger requests for information from the client user interface 710. Thecontent data store 745 can generate an event upon modification ofincluded content. This event can cause generation of the notification785. The notification 785 can be sent to the client user interface 710which can use the notification as a triggering event to request new orupdated content from the information provision system 730.

Various components of the information provision system 730 can useartificial intelligence-based components to provide functionality to thesystem. For example, the ranking and filtering module 775 can employclassifiers to assign ranks to content to be provided to the client userinterface 710. Also, for example, the advertising purchasing module 765can use artificial intelligence-based components to match user models770 with users in desired target demographic groups.

The disclosed and described components, for example in connection withthe previously mentions matching or inference tasks, among others, canemploy various artificial intelligence-based schemes for carrying outvarious tasks. For example, demographic matching or content ranking inaccordance with user feedback or preferences can be carried out by aneural network, an expert system, a rules-based processing component, ora support vector machine.

A classifier is a function that maps an input attribute vector, X=(x₁,X₂, x₃, x₄, . . . x_(n)), to a confidence that the input belongs to aclass, that is, f(X)=confidence(class). Such a classification can employa probabilistic and/or statistical-based analysis (for example,factoring into the analysis utilities and costs) to prognose or infer anaction that a user desires to be automatically performed. In the case ofa content provision system, for example, attributes of a reference setof information such as user preferences to be used in a comparison canbe used to determine whether attributes of a piece of content can beconsidered to match the preferences of the user.

A support vector machine (SVM) is an example of a classifier that can beemployed. The SVM operates by finding a hypersurface in the space ofpossible inputs, which hypersurface attempts to split the triggeringcriteria from the non-triggering events. Intuitively, this makes theclassification correct for testing data that is near, but not identicalto training data. Other directed and undirected model classificationapproaches include, for example, naïve Bayes, Bayesian networks,decision trees, and probabilistic classification models providingdifferent patterns of independence can be employed. Classification asused herein also includes statistical regression that is utilized todevelop models of priority.

As will be readily appreciated from the subject specification,components disclosed or described herein can employ classifiers that areexplicitly trained (for example, by a generic training data) as well asimplicitly trained (for example, by observing user behavior, receivingextrinsic information). For example, SVMs are configured by a learningor training phase within a classifier constructor and feature selectionmodule. Thus, the classifier(s) can be used to automatically perform anumber of functions including, but not limited to, matching and rankingfunctions.

In operation, the supplemental content provision system 700 can functionas follows. A user can operate the client user interface 710 to obtain aWeb page. The Web page can be provided over a network connection such asa LAN, a WAN, an intranet, or the Internet, among others. The clientuser interface 710 can use an anchoring scheme, such as any of theanchoring schemes disclosed or described herein, to identify additionalcontent to obtain from the third party content provider 715. Based uponthe anchor, the client user interface 710 can request additional contentfrom the information provision system 730. This additional content canbe notes, chat room connections, tags, advertisements, or anycombination of these, among others.

The client user interface sends its request to the privacy protectionservice 725. This request can be triggered by the notification 785. Theprivacy protection service 725 anonymizes the request by stripping anypersonally-identifiable information from the request and forwards therequest to the fetcher 735. Additionally or alternatively, the privacyprotection service 625 can include the request in with a group of dummyrequests to hide the real request from anyone who may be monitoring therequests.

The fetcher 735 obtains user preferences (that can be anyonymized aswell) from the user preferences 740 and uses those preferences to obtaincontent from the content data store 745 and advertisements from theadvertisement data store 760. The fetcher sends the content andadvertisements to the ranking and filtering module 775 that ranks andfilters the content and advertisements in accordance with the userpreferences 740, user models 770, and user feedback 780. The ranking andfiltering module 775 sends the content and advertisements to the privacyprotection service 725 that relays the content and advertisements to theclient user interface 710.

The user can use the client user interface 710, through the privacyprotection service 725, to create user content by accessing the usercontent writer 750. The user content writer 750 places the user-createdcontent into the content data store 745. Additionally or alternatively,the non-user content 755 can be placed into the content data store 745and included in content ultimately sent to the client user interface710.

The user can also access the user feedback module 780 to provideexplicit feedback for the content provided to the client user interface710. The feedback can include measures of quality such as relevancealong with requests for more information of the type provided orrequests to block certain content. User feedback can be used in rankingand filtering tasks and can specifically be used to assist in trainingany artificial intelligence-based components of the ranking andfiltering module 775.

Advertisers can use the advertising user interface 720 to access theadvertising purchasing module 765. Those advertisers can purchaseadvertising space and access the user models 770 to define targetrecipients of the advertising. Advertisers can also use the advertiseruser interface 720 and the advertising purchasing module 765 to uploador otherwise provide specific advertising to be provided to users. Theseadvertisements are stored in the advertising data store 760.

FIG. 8 is a diagram of an exemplary user interface 800. The userinterface 800 can provide a logical arrangement of elements within whichinformation can be presented to a user. Specifically, the user interface800 can provide a platform that a user can employ to obtain content froman information provider such as a Web site as well as secondary oruser-created content that can be anchored to the content from theinformation provider. Such secondary or user-created content can bepresented alongside the content from the information provider.

The user interface 800 can include a primary information pane 810. Inthis example, which is based upon a Web browsing platform and which canbe modified to accommodate variations previously disclosed or describedin conjunction with other figures, the primary information pane 810 canbe used to render or display a Web page to which a user has navigated.Standard Web page elements, such as text, graphics, multimedia content,and embedded code, among other things, can be rendered in the primaryinformation pane 810. The Web page rendered in the primary informationpane 810 can be reached by entering a URL in a navigation bar, byperforming a search using a search engine, or by clicking on a hyperlinkfrom another Web page, among other methods.

A secondary information pane or sidebar 820 can be displayed near theprimary information pane 810. Although called a sidebar, the secondaryinformation pane or sidebar 820 can be part of a single window that alsoincludes the primary information pane 810, as shown, or can be presentedin a separate window. Additionally or alternatively, the secondaryinformation pane or sidebar 820 can be positioned at the top or bottomof the window as well as on either the left or right sides. Suchpositioning can be in accordance with a user-selectable preference forthe user interface 800.

The secondary information pane or sidebar 820 can provide an area withinwhich various elements, such as notes, chat boxes, and advertising, suchas the notes, chat boxes, and advertising disclosed and described hereinin conjunction with other figures, can be displayed. A note 830 includesa message from a user indicating that the user has tickets for sale foran event that is to occur in the same approximate geographic location asan establishment described by a Web page rendered in the primaryinformation pane 810. Other messages are included in notes 840, 850,860.

An add note component 870 provides a text box and an entry control thatallows a user to create and add a note that can be anchored to thedomain name of the Web site currently being viewed in the primaryinformation pane 810. A chat box 880 provides an interface for a user tojoin a chat session that is related to a general topic of thecurrently-viewed Web site. An advertising area 890 provides a spacewhere targeted advertising can be delivered to a user.

With reference to FIGS. 9-12, flowcharts in accordance with variousmethods or procedures are presented. While, for purposes of simplicityof explanation, the one or more methodologies shown herein, for example,in the form of a flow chart, are shown and described as a series ofacts, it is to be understood and appreciated that neither theillustrated and described methods and procedures nor any components withwhich such methods or procedures can be used are necessarily limited bythe order of acts, as some acts may occur in a different order and/orconcurrently with other acts from that shown and described herein. Forexample, those skilled in the art will understand and appreciate that amethodology could alternatively be represented as a series ofinterrelated states or events, such as in a state diagram. Moreover, notall illustrated acts may be required to implement a methodology orprocedure.

FIG. 9 is a flow diagram illustrating a general processing flow of amethod 900 that can be employed in conjunction with components that aredisclosed or described herein in conjunction with other figures. Themethod 900 can be used to obtain additional content related to contentof interest to a user. Specifically, the additional content can beobtained by analyzing content of a currently-viewed Web page andlocating additional content related to content of that Web page.

Processing of the method 900 begins at START block 910 and proceeds toprocess block 920. At process block 920, a Web page is fetched from somelocation on a network. The network can be a local area network (LAN), awide area network (WAN), an intranet, or the Internet, among others.Content of the fetched Web page is analyzed at process block 930.Various analysis algorithms can be employed to find important orrelevant terms in a Web page. Among those algorithms is the TF-IDFalgorithm previously discussed in conjunction with other figures.

At process block 940, additional content that is related to content ofthe fetched Web page is identified and obtained. This content can beobtained from a location other than the network location that providedthe Web page being viewed or the Web page that was analyzed. The contentcan be related in a variety of ways, including, but not limited to,being topically related or being anchored to a URL of the Web page.Specifically, the obtained content can be created by a current user orby other users who have made such content available for public or groupviewing. At process block 950, the obtained additional content ispresented to a user. Presentation can occur in an identified region of ahuman-computer interface, such as a graphical user interface. Processingof the method 900 terminates at END block 960.

FIG. 10 is a flow diagram illustrating a general processing flow 1000that can be employed in conjunction with components that are disclosedor described herein in conjunction with other figures. The method 1000can be used to obtain interactive services that related to content ofinterest to a user. Specifically, the interactive services can beobtained by analyzing content of a currently-viewed Web page andlocating interactive services that are related to content of thatcurrently-viewed Web page.

Processing of the method 1000 begins at START block 1010 and proceeds toprocess block 1020. At process block 1020, a Web page is obtained from alocation on a network. This network can be a LAN, a WAN, an intranet, orthe Internet, among others. At process block 1030, content of the Webpage is analyzed. As in other examples, the TF-IDF algorithm can be usedto analyze the Web page. Other algorithms can also be used.

An interactive service, in this example a chat session, that is relatedto the content of the Web page is identified at process block 1040.Identification can be based upon a keyword search for chatroom topics,among other methods. At process block 1050, a connection is made to atleast one identified chat session and chatroom content is presented to auser. Processing of the method 1000 terminates at END block 760.

FIG. 11 is a flow diagram illustrating a general processing flow of amethod 1100 that can be employed in conjunction with components that aredisclosed or described herein in conjunction with other figures. Themethod 1100 can be used to obtain additional content that is related tocontent of interest to a user. Specifically, the additional content canbe obtained by analyzing content of a currently-viewed Web page andlocating additional content that can reference content of thatcurrently-viewed Web page.

Processing of the method 1100 begins at START block 1110. Processingthen continues to process block 1120 where a Web page is fetched. TheWeb page can be fetched from some Web server that can be local orremote. A remote Web server can be accessed by using a network such as aLAN, a WAN, an intranet, or the Internet, among others. At process block1130, content of the fetched Web page is analyzed. Analysis of thecontent of the Web page can be according to a variety of algorithms,specifically including the TF-IDF algorithm. Another suitable algorithmcan be substituted for the TF-IDF algorithm.

Content from Web logs that is relevant to content of the fetched Webpage is identified and obtained at process block 1140. Web log contentcan be relevant in a variety of ways. For example, a Web log canspecifically discuss content on the Web page that was analyzed. A Weblog entry can also provide a hyperlink to the analyzed Web page. Also, aWeb log entry can simply discuss the same or a similar topic as theanalyzed Web page. Such Web log content is presented to user at processblock 1150. Processing of the method 1100 terminates at END block 1160.

FIG. 12 is a flow diagram illustrating a general processing flow of amethod 1200 that can be employed in conjunction with components that aredisclosed or described herein in conjunction with other figures. Themethod 1200 can be used to obtain additional content related to contentof interest to a user. Specifically, the additional content can beobtained by analyzing content of a currently-viewed Web page andperforming a search to create a set of results that can be biased infavor of results that include content that is similar to content of thatanalyzed Web page.

Processing of the method 1200 begins START block 1210. At process block1220, a Web page is fetched from some information server, such as a Webserver. The information server can be local or remote. In the case wherethe information server is remote, the Web page can be obtained over anetwork such as a LAN, a WAN, an intranet, or the Internet, amongothers.

The fetched Web page is analyzed at process block 1230. Important termsor concepts from the Web page are identified at process block 1240.Analysis and identification tasks can be performed using variousalgorithms, including the TF-IDF algorithms discussed in conjunctionwith other figures. Processing of the method 1200 continues at processblock 1250 where a search query is accepted from the user.

At process block 1260, the search query accepted from the user isoptionally augmented by adding important terms or concepts identifiedfrom the analyzed Web page to the query. A search, using the augmentedquery, is performed at process block 1270. Augmentation of the query inthis manner can be used to bias results of the search in favor ofresults that include content that is similar to content of the analyzedWeb page. Searches can also optionally be refined in a variety of ways,such as by limiting a query to a current domain or to pages that link toa currently-viewed page. Other modifications are also possible. Resultsof the search are obtained at process block 1280 and can be presented toa user through some interface. At process block 1285, the obtainedresults are optionally reordered. Processing of the method 1200terminates at END block 1290.

In order to provide additional context for implementation, FIGS. 13-14and the following discussion is intended to provide a brief, generaldescription of a suitable computing environment within which disclosedand described components and methods can be implemented. While variousspecific implementations have been described above in the generalcontext of computer-executable instructions of a computer program thatruns on a local computer and/or remote computer, those skilled in theart will recognize that other implementations are also possible eitheralone or in combination with other program modules. Generally, programmodules include routines, programs, components, data structures, etc.that perform particular tasks and/or implement particular abstract datatypes.

Moreover, those skilled in the art will appreciate that theabove-described components and methods may be practiced with othercomputer system configurations, including single-processor ormulti-processor computer systems, minicomputers, mainframe computers, aswell as personal computers, hand-held computing devices,microprocessor-based and/or programmable consumer electronics, and thelike, each of which may operatively communicate with one or moreassociated devices. Certain illustrated aspects of the disclosed anddescribed components and methods may also be practiced in distributedcomputing environments where certain tasks are performed by remoteprocessing devices that are linked through a communications network orother data connection. However, some, if not all, of these aspects maybe practiced on stand-alone computers. In a distributed computingenvironment, program modules may be located in local and/or remotememory storage devices.

FIG. 13 is a schematic block diagram of a sample-computing environment1300 with which the subject invention can interact. The system 1300includes one or more client(s) 1310. The client(s) 1310 can be hardwareand/or software (e.g., threads, processes, computing devices). Thesystem 1300 also includes one or more server(s) 1320. The server(s) 1320can be hardware and/or software (e.g., threads, processes, computingdevices). The servers 1320 can house threads or processes to performtransformations by employing the subject invention, for example.

One possible means of communication between a client 1310 and a server1320 can be in the form of a data packet adapted to be transmittedbetween two or more computer processes. The system 1300 includes acommunication framework 1340 that can be employed to facilitatecommunications between the client(s) 1310 and the server(s) 1320. Theclient(s) 1310 are operably connected to one or more client datastore(s) 1350 that can be employed to store information local to theclient(s) 1310. Similarly, the server(s) 1320 are operably connected toone or more server data store(s) 1330 that can be employed to storeinformation local to the servers 1340.

With reference to FIG. 14, an exemplary environment 1400 forimplementing various aspects of the invention includes a computer 1412.The computer 1412 includes a processing unit 1414, a system memory 1416,and a system bus 1418. The system bus 1418 couples system componentsincluding, but not limited to, the system memory 1416 to the processingunit 1414. The processing unit 1414 can be any of various availableprocessors. Dual microprocessors and other multiprocessor architecturesalso can be employed as the processing unit 1414.

The system bus 1418 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 1416 includes volatile memory 1420 and nonvolatilememory 1422. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1412, such as during start-up, is stored in nonvolatile memory 1422. Byway of illustration, and not limitation, nonvolatile memory 1422 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory 1420 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 1412 also includes removable/non-removable,volatile/non-volatile computer storage media. For example, FIG. 14illustrates a disk storage 1424. The disk storage 1424 includes, but isnot limited to, devices like a magnetic disk drive, floppy disk drive,tape drive, Jaz drive, Zip drive, LS-100 drive, flash memory card, ormemory stick. In addition, disk storage 1424 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage devices 1424 to the system bus 1418, aremovable or non-removable interface is typically used such as interface1426.

It is to be appreciated that FIG. 14 describes software that acts as anintermediary between users and the basic computer resources described inthe suitable operating environment 1400. Such software includes anoperating system 1428. The operating system 1428, which can be stored onthe disk storage 1424, acts to control and allocate resources of thecomputer system 1412. System applications 1430 take advantage of themanagement of resources by operating system 1428 through program modules1432 and program data 1434 stored either in system memory 1416 or ondisk storage 1424. It is to be appreciated that the subject inventioncan be implemented with various operating systems or combinations ofoperating systems.

A user enters commands or information into the computer 1412 throughinput device(s) 1436. The input devices 1436 include, but are notlimited to, a pointing device such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, game pad, satellite dish, scanner,TV tuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1414through the system bus 1418 via interface port(s) 1438. Interfaceport(s) 1438 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1440 usesome of the same type of ports as input device(s) 1436. Thus, forexample, a USB port may be used to provide input to computer 1412, andto output information from computer 1412 to an output device 1440.Output adapter 1442 is provided to illustrate that there are some outputdevices 1440 like monitors, speakers, and printers, among other outputdevices 1440, which require special adapters. The output adapters 1442include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1440and the system bus 1418. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1444.

Computer 1412 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1444. The remote computer(s) 1444 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1412. For purposes of brevity, only a memory storage device 1446 isillustrated with remote computer(s) 1444. Remote computer(s) 1444 islogically connected to computer 1412 through a network interface 1448and then physically connected via communication connection 1450. Networkinterface 1448 encompasses wire and/or wireless communication networkssuch as local-area networks (LAN) and wide-area networks (WAN). LANtechnologies include Fiber Distributed Data Interface (FDDI), CopperDistributed Data Interface (CDDI), Ethernet, Token Ring and the like.WAN technologies include, but are not limited to, point-to-point links,circuit switching networks like Integrated Services Digital Networks(ISDN) and variations thereon, packet switching networks, and DigitalSubscriber Lines (DSL).

Communication connection(s) 1450 refers to the hardware/softwareemployed to connect the network interface 1448 to the bus 1418. Whilecommunication connection 1450 is shown for illustrative clarity insidecomputer 1412, it can also be external to computer 1412. Thehardware/software necessary for connection to the network interface 1248includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

What has been described above includes examples of the subjectinvention. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe subject invention, but one of ordinary skill in the art mayrecognize that many further combinations and permutations of the subjectinvention are possible. Accordingly, the subject invention is intendedto embrace all such alterations, modifications, and variations that fallwithin the spirit and scope of the appended claims.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms (including a reference to a “means”) used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., a functional equivalent), even though not structurallyequivalent to the disclosed structure, which performs the function inthe herein illustrated exemplary aspects of the invention. In thisregard, it will also be recognized that the invention includes a systemas well as a computer-readable medium having computer-executableinstructions for performing the acts and/or events of the variousmethods of the invention.

In addition, while a particular feature of the invention may have beendisclosed with respect to only one of several implementations, suchfeature may be combined with one or more other features of the otherimplementations as may be desired and advantageous for any given orparticular application. Furthermore, to the extent that the terms“includes,” and “including” and variants thereof are used in either thedetailed description or the claims, these terms are intended to beinclusive in a manner similar to the term “comprising.”

1-20. (canceled)
 21. A computer-implemented method comprising:analyzing, via a processor, network content rendered at a clientcomputing device; determining anchoring information based on the networkcontent; associating the network content with an advertisement based onthe anchoring information; receiving the advertisement; and presentingthe advertisement at the client computing device.
 22. Acomputer-implemented method as recited in claim 21, further comprising:obtaining user preferences; and receiving a plurality of advertisementsfrom an advertisement data store based on the user preferences.
 23. Acomputer-implemented method as recited in claim 22, further comprising:ranking the plurality of advertisements in accordance with the userpreferences; and presenting a subset of the plurality of advertisementsaccording to the ranking.
 24. A computer-implemented method as recitedin claim 22, wherein advertisers purchase advertising space in theadvertisement data store via an advertising user interface.
 25. Acomputer-implemented method as recited in claim 24, wherein theadvertisers submit one or more notes individually utilized to associatea particular advertisement with particular web content, the one or morenotes including content utilized to associate the advertisements withparticular anchoring information.
 26. A computer-implemented method asrecited in claim 21, wherein the anchoring information includeskeywords, and the advertisement is associated with the network contentbased on the keywords.
 27. A computer-implemented method as recited inclaim 26, wherein associating includes matching the keywords withcontent provided in one or more notes submitted by advertisers.
 28. Acomputer-implemented method as recited in claim 21, further comprisingprotecting personal information of a user of the client computingdevice.
 29. A computer-readable storage medium having computerexecutable instructions encoded thereon, the computer executableinstructions programmed to, upon execution by at least one processor,configure a computing system to associate information, thecomputer-readable storage medium comprising: an advertising purchasingmodule that allows advertisers to purchase space for advertisements andaccess user models that define target recipients for the advertisements;and a fetching module that receives a client request for supplementalcontent and obtains one or more advertisements responsive to the clientrequest.
 30. A computer-readable storage medium as recited in claim 29,wherein the supplemental content is anchored to web content, thecomputer-readable storage medium further comprising an associationmodule that analyzes the web content, determines anchoring informationfrom the web content, and uses the anchoring information to associatethe one or more advertisements with the web content.
 31. Acomputer-readable storage medium as recited in claim 29, furthercomprising a ranking module that ranks the one or more advertisements.32. A computer-readable storage medium as recited in claim 31, whereinthe fetching module obtains user preferences and user feedback, andsends the user preferences and the user feedback to the ranking moduleto rank the one or more advertisements.
 33. A computer-readable storagemedium as recited in claim 31, wherein the fetching module returns asubset of the one or more advertisements to a client based on theranking.
 34. A computer-readable storage medium as recited in claim 29,further comprising a privacy protection service that protects personalinformation of a user associated with a client computing device thatsends the client request.
 35. A computer-readable storage medium asrecited in claim 34, wherein the privacy protection service removespersonal identification information from the client request.
 36. Acomputer-readable storage medium as recited in claim 34, wherein theprivacy protection service includes the client request with a group ofdummy requests, thereby obscuring the client request.
 37. Acomputer-implemented method comprising: receiving one or more requestsfor supplemental information anchored to web content rendered on aclient device; removing personal identification information from the oneor more requests; obtaining information associated with the one or morerequests for supplemental content from a content data store; andreturning the information to the client device.
 38. Acomputer-implemented method as recited in claim 37, further comprisinggrouping the one or more requests with dummy requests, thereby obscuringthe one or more requests.
 39. A computer-implemented method as recitedin claim 37, wherein the information includes an advertisement.
 40. Oneor more computer storage media storing instructions that, when executedby the processor, direct the processor to perform thecomputer-implemented method as recited in claim 37.